﻿using System.Collections.Generic;
using System;
using DATA.Base;
using DATA.BusinessObjects;
using DATA.ManagerObjects;
using DATA.UnitTests;
using NHibernate;

namespace BUS
{
    public class ThamSoBUS
    {
        #region Len - Tạo Mã tăng tự động
        public static string TaoMaTangTuDong(String maHienTai, int vitri, String prefix)
        {
            string maTuDong = prefix;
            try
            {
                int intMa = 0;
                intMa = int.Parse(maHienTai.Substring(vitri));
                maTuDong = maTuDong + (intMa + 1).ToString();
            }
            catch (Exception ex)
            {
                throw new Exception("Lỗi, không tạo mã khách hàng tự động được", ex);
            }
            return maTuDong;
        }
        #endregion

        #region Bình - Lấy số lượng khách tối đa trong một phòng
        public static int LaySoLuongKhachToiDaMotPhong()
        {
            IManagerFactory MF = new ManagerFactory();
            IThamsoManager TSM = MF.GetThamsoManager();

            Thamso ts = TSM.GetAll()[0];

            return ts.SoLuongKhachToiDaMotPhong;
        }
        #endregion

        #region Bình - Lấy số lượng khách tính theo đơn giá phòng
        public static int LaySoKhachTinhTheoDonGiaPhong()
        {
            IManagerFactory MF = new ManagerFactory();
            IThamsoManager TSM = MF.GetThamsoManager();

            Thamso ts = TSM.GetAll()[0];

            return int.Parse(ts.SoKhachTinhTheoDonGiaPhong);
        }
        #endregion

        #region Bình - Lấy tham số
        public static Thamso LayThamSo()
        {
            Thamso ts = null;
            IManagerFactory MF = new ManagerFactory();
            IThamsoManager TSM = MF.GetThamsoManager();

            ts = TSM.GetAll()[0];
            return ts;
        }
        #endregion

        #region Bình - Cập nhật tham số
        public static Boolean CapNhatThamSo(Thamso ts)
        {
            Boolean flag = false;
            ISession isession = NHibernateSessionManager.Instance.Session.GetISession();
            ITransaction iTrans = null;
            try
            {
                iTrans = isession.BeginTransaction();
                isession.Update(ts);
                iTrans.Commit();
                flag = true;
            }
            catch (Exception ex)
            {
                iTrans.Rollback();
                throw new Exception("Lỗi", ex);
            }
            return flag;
        }
        #endregion
    }
}
